package com.example.jdk7;

public class java7Test7 {

//    JDK7引入了Asynchronous I/O。I/O编程中，常用到两种模式：Reactor 和 Proactor。Reactor就
//    是Java的NIO。当有事件触发时，我们得到通知，进行相应的处理。Proactor就是我们今天要讲的    AIO了。
//    AIO进行I/O操作，都是异步处理，当事件完成时，我们会得到通知。
//    JDK7的 AIO包括网络和文件操作。两者大同小异，本文通过一个完整的客户端/服务器Sample来详细说明aio的网络操作。
//    AIO提供了两种异步操作的监听机制。第一种通过返回一个Future对象来事件，调用其get（）会等到操作
//    完成。第二种类似于回调函数。在进行异步操作时，传递一个CompletionHandler，当异步操作结束时，会调 用CompletionHandler.complete  接口

//    在进行异步操作时相关类说明
//    AsynchronousSocketChannel 跟 SocketChannel操作类似，只不过改成异步接口了
//    AsynchronousServerSocketChannel跟ServerSocketChannel操作类似，只不过改成异步接口了
//    CompletionHandler 接口包括两个方法
//    void completed(V result, A attachment);
//    void failed(Throwable exc, A attachment);
//    总结
//    本文只是对jdk7的aio使用做了一个简单的说明。至于其性能提升多少，如何改进现有的网络应用程序，还
//    在摸索中。这里推荐一个比较成熟的网络框架Project Grizzly:http://grizzly.dev.java.net。据说已经用aio重新
//    实现了，有兴趣的同学可以去研究一下源码。

    public static void main(String[] args) {

    }
}
